home *** CD-ROM | disk | FTP | other *** search
/ Utilities Professional 1-1500 / Utilities Professional 1-1500 (1994)(WPD)[!].iso / 12511500 / var1432.dms / var1432.adf / NDUK-V40.lha / V40 / include / rexx / rxslib.h < prev    next >
C/C++ Source or Header  |  1993-10-15  |  4KB  |  108 lines

  1. #ifndef REXX_RXSLIB_H
  2. #define REXX_RXSLIB_H
  3. /*
  4. **    $VER: rxslib.h 1.6 (8.11.91)
  5. **    Includes Release 40.15
  6. **
  7. **    The header file for the REXX Systems Library
  8. **
  9. **    (C) Copyright 1987,1988,1989,1990 William S. Hawes
  10. **    (C) Copyright 1990-1993 Commodore-Amiga, Inc.
  11. **        All Rights Reserved
  12. */
  13.  
  14. #ifndef REXX_STORAGE_H
  15. #include "rexx/storage.h"
  16. #endif
  17.  
  18. #define RXSNAME  "rexxsyslib.library"
  19. #define RXSDIR     "REXX"
  20. #define RXSTNAME "ARexx"
  21.  
  22. /* The REXX systems library structure.    This should be considered as    */
  23. /* semi-private and read-only, except for documented exceptions.    */
  24.  
  25. struct RxsLib {
  26.    struct Library rl_Node;           /* EXEC library node        */
  27.    UBYTE    rl_Flags;               /* global flags            */
  28.    UBYTE    rl_Shadow;               /* shadow flags            */
  29.    APTR     rl_SysBase;           /* EXEC library base        */
  30.    APTR     rl_DOSBase;           /* DOS library base        */
  31.    APTR     rl_IeeeDPBase;           /* IEEE DP math library base    */
  32.    LONG     rl_SegList;           /* library seglist        */
  33.    LONG     rl_NIL;               /* global NIL: filehandle    */
  34.    LONG     rl_Chunk;               /* allocation quantum        */
  35.    LONG     rl_MaxNest;           /* maximum expression nesting    */
  36.    struct NexxStr *rl_NULL;           /* static string: NULL        */
  37.    struct NexxStr *rl_FALSE;           /* static string: FALSE        */
  38.    struct NexxStr *rl_TRUE;           /* static string: TRUE        */
  39.    struct NexxStr *rl_REXX;           /* static string: REXX        */
  40.    struct NexxStr *rl_COMMAND;           /* static string: COMMAND    */
  41.    struct NexxStr *rl_STDIN;           /* static string: STDIN        */
  42.    struct NexxStr *rl_STDOUT;           /* static string: STDOUT    */
  43.    struct NexxStr *rl_STDERR;           /* static string: STDERR    */
  44.    STRPTR    rl_Version;           /* version string        */
  45.  
  46.    STRPTR    rl_TaskName;           /* name string for tasks    */
  47.    LONG      rl_TaskPri;           /* starting priority        */
  48.    LONG      rl_TaskSeg;           /* startup seglist        */
  49.    LONG      rl_StackSize;           /* stack size            */
  50.    STRPTR    rl_RexxDir;           /* REXX directory        */
  51.    STRPTR    rl_CTABLE;           /* character attribute table    */
  52.    STRPTR    rl_Notice;           /* copyright notice        */
  53.  
  54.    struct MsgPort rl_RexxPort;           /* REXX public port        */
  55.    UWORD     rl_ReadLock;           /* lock count            */
  56.    LONG      rl_TraceFH;           /* global trace console        */
  57.    struct List rl_TaskList;           /* REXX task list        */
  58.    WORD      rl_NumTask;           /* task count            */
  59.    struct List rl_LibList;           /* Library List header        */
  60.    WORD      rl_NumLib;           /* library count        */
  61.    struct List rl_ClipList;           /* ClipList header        */
  62.    WORD      rl_NumClip;           /* clip node count        */
  63.    struct List rl_MsgList;           /* pending messages        */
  64.    WORD      rl_NumMsg;           /* pending count        */
  65.    struct List rl_PgmList;           /* cached programs        */
  66.    WORD      rl_NumPgm;           /* program count        */
  67.  
  68.    UWORD     rl_TraceCnt;           /* usage count for trace console */
  69.    WORD      rl_avail;
  70.    };
  71.  
  72. /* Global flag bit definitions for RexxMaster                */
  73. #define RLFB_TRACE RTFB_TRACE           /* interactive tracing?        */
  74. #define RLFB_HALT  RTFB_HALT           /* halt execution?        */
  75. #define RLFB_SUSP  RTFB_SUSP           /* suspend execution?        */
  76. #define RLFB_STOP  6               /* deny further invocations    */
  77. #define RLFB_CLOSE 7               /* close the master        */
  78.  
  79. #define RLFMASK    (1<<RLFB_TRACE) | (1<<RLFB_HALT) | (1<<RLFB_SUSP)
  80.  
  81. /* Initialization constants                        */
  82. #define RXSCHUNK   1024           /* allocation quantum        */
  83. #define RXSNEST    32               /* expression nesting limit    */
  84. #define RXSTPRI    0               /* task priority        */
  85. #define RXSSTACK   4096           /* stack size            */
  86.  
  87. /* Character attribute flag bits used in REXX.                */
  88. #define CTB_SPACE   0               /* white space characters    */
  89. #define CTB_DIGIT   1               /* decimal digits 0-9        */
  90. #define CTB_ALPHA   2               /* alphabetic characters    */
  91. #define CTB_REXXSYM 3               /* REXX symbol characters    */
  92. #define CTB_REXXOPR 4               /* REXX operator characters    */
  93. #define CTB_REXXSPC 5               /* REXX special symbols        */
  94. #define CTB_UPPER   6               /* UPPERCASE alphabetic        */
  95. #define CTB_LOWER   7               /* lowercase alphabetic        */
  96.  
  97. /* Attribute flags                            */
  98. #define CTF_SPACE   (1 << CTB_SPACE)
  99. #define CTF_DIGIT   (1 << CTB_DIGIT)
  100. #define CTF_ALPHA   (1 << CTB_ALPHA)
  101. #define CTF_REXXSYM (1 << CTB_REXXSYM)
  102. #define CTF_REXXOPR (1 << CTB_REXXOPR)
  103. #define CTF_REXXSPC (1 << CTB_REXXSPC)
  104. #define CTF_UPPER   (1 << CTB_UPPER)
  105. #define CTF_LOWER   (1 << CTB_LOWER)
  106.  
  107. #endif
  108.